<?php

class CategoryModel extends Model{

	public $validate = array(
		//验证规则
		array('cname','nonull','不能为空',2,3),

		);
	/**
	*	添加栏目数据
	*/
	public function addData(){
		if($this->create()){
			if($this->add()){
				//更新缓存
				$this->cacheData();
				return true;
			}else{
				return false;
			}
		}
	}
	//获取栏目树形结构数据( 有父子集关系的 )
	public function getTreeData(){
		$category = $this->order('sort')->all();//待完善
		$category = Data::tree($category,'cname');//生成树状结构，并将 键名 改为主键cid 的值
		return $category;
	}
	/**
	*	通过cid 获取栏目数据 （当前用于编辑栏目操作）
	*/
	public function getDataByCid(){
		//获取编辑cid
		$cid = Q('cid',0,'intval');
		//组合where查询条件
		$map['cid'] = array('EQ',$cid);
		//where 条件的三种传参方式
		//1,str   "cid=$cid";
		//2,array('cid'=>$cid);
		//3,$map['cid'] = array('EQ',$cid);
		$data = $this->where($map)->find();
		return $data;
	}

	//获取 加了disabled 属性的栏目tree数据
	public function getEditData(){
		//获取树形 全部栏目数据
		$data = $this->getTreeData();
		//获取pid
		$pid = Q('cid',0,'intval');
		foreach ($data as $key => $d) {
			//如果是子栏目或当前栏目本身，添加disabled属性
			$disabled = (Data::isChild($data,$d['cid'],$pid) or $d['cid']==$pid )? ' disabled="" ' : '';
			//disabled 属性压入数组
			$data[$key]['disabled'] = $disabled;
		}
		return $data;
	}

	//编辑栏目数据
	public function saveData(){
		$cid = Q('cid',0,'intval');
		//执行验证操作
		if($this->create()){
			//编辑当前条数据
			if($this->where(array('cid'=>$cid))->save()){
				//更新缓存
				$this->cacheData();
				return true;
			}else{
				return false;
			}
		}
	}

	//缓存数据 
	public function cacheData(){
		//1,拿数据
		$data = $this->getTreeData();
		//2,缓存
		return S('category',$data);
	}
}

?>